SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO
CREATE PROCEDURE [dbo].[parProyectosporAnio]

@Anio INT

AS
SET NOCOUNT ON
SET DATEFORMAT DMY

SELECT     TPg.Descripcion, P.IdProyecto, SP.IdSubProyecto, SP.NombreSubProyecto,TSP.Descripcion AS TipoSubProyecto, 
SP.Anio, I.FechaDesde, I.FechaHasta, I.Norma, 
I.IdInstancia, SP.CantidadHoras,count(PA.IdParticipante) Insc, 
CASE	WHEN SP.IdTipoCertificado = 1 THEN count(PA.Aprobado) 
	WHEN SP.IdTipoCertificado IN (2,3) THEN count(PA.Asistencia) 
	END Cant	
FROM dbo.tb_Proyectos P
INNER JOIN tb_SubProyectos SP ON P.IdProyecto = SP.IdProyecto 
INNER JOIN tb_TiposSubProyectos  TSP ON SP.IdTipoSubProyecto = TSP.IdTipoSubProyecto 
INNER JOIN tb_Instancias I ON SP.IdSubProyecto = I.IdSubProyecto 
INNER JOIN tb_TiposPrograma TPg ON TPg.IdTipoPrograma = P.IdTipoPrograma
LEFT OUTER JOIN tb_Participantes Pa ON Pa.IdInstancia = I.IdInstancia 
LEFT OUTER JOIN tb_TiposParticipantes TP ON Tp.IdTipoParticipante = pa.IdTipoParticipante AND TP.Asiste = 'S'
GROUP BY TPg.Descripcion, P.IdProyecto,SP.IdSubProyecto, SP.NombreSubProyecto,TSP.Descripcion, SP.Anio,
 I.FechaDesde, I.FechaHasta, I.Norma, 
I.IdInstancia, SP.CantidadHoras,SP.IdTipoCertificado
HAVING Sp.Anio= @Anio
Order by  I.Norma,P.IdProyecto, SP.IdSubProyecto,I.IdInstancia
GO
